extern malloc

; Iterador* constructor_iterador(Lista *lista)
global constructor_iterador

%define ptr_lista [ebp + 8]
section .text

constructor_iterador:

	push ebp		; creo el marco de la pila
	mov ebp, esp		

	push ebx		; salvo registros convencion C
	push edi			
	push esi

	mov eax, 4		; pido 4 bytes para el iterador
	push eax
	call malloc
	add esp, 4

	cmp eax, 0		; verifico que me de la memoria q pedi
	je fin

	mov ecx, ptr_lista	; tengo en ecx el puntero a la lista
	mov ebx, [ecx]		; tengo en ecx el puntero a la lista
	mov [eax], ebx		; eax apunta a la lista

fin:
	pop esi			; desarmo el marco de la pila
	pop edi		
	pop ebx		
	pop ebp		

	ret
